package com.itheima.d1_exception;

/**
 * 目标：掌握自定义异常，以及异常的作用。
 *
 * 自定义异常
 *      自定义运行时异常
 *          1 定义一个异常类继承RuntimeException.
 *          2 生成构造器。
 *          3 通过throw new 异常类(xxx)来创建异常对象并抛出。
 *            编译阶段不报错，提醒不强烈，运行时才可能出现！！
 *      自定义编译时异常
 *          1 定义一个异常类继承Exception.
 *          2 生成构造器。
 *          3 通过throw new 异常类(xxx)来创建异常对象并抛出。
 *            编译阶段就报错，提醒更加强烈！
 * 异常有什么作用
 *      检测系统出现问题关键的参考信息
 *      异常可以作为方法内部的一种特殊返回值,以便通知上层调用者底层的情况
 *
 * 需求 : 定义方法接收年龄, 验证此年龄是否合法,如果年龄不合法抛出自定义异常
 */
public class ExceptionTest2 {
    public static void main(String[] args) {
        try {
            setAge(45);
            System.out.println("try里面的代码");
        } catch (Exception e) {
            System.out.println("年龄的大小不合适");
        }

    }
    public static void setAge(int age) throws AgeOutException {
        if(age>0&&age<120){
            System.out.println("年龄合适");
        }else{

            //又创建了一个新的异常
            throw new AgeOutException("年龄超出范围了，自定义异常");
        }
    }

}
